/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package datos;

import Negocios.Cliente;
import Negocios.Sucursal;
import Negocios.item;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Magaly
 */
public class VentaDB {
    public void GuardarVenta(String fecha, String tipo,Cliente cliente,Sucursal suc,LinkedList <item> lista){
        Conexion c=new Conexion();
        Connection cn=c.getConeccion();
        Statement st;
        try {
            st = cn.createStatement();
            String sql="insert into ventas (fecha) values ('"+fecha+"')";
            st.executeUpdate(sql);
            sql="select max(IdVenta) as id from ventas";
            ResultSet rs=st.executeQuery(sql);
            int idv=0;
            if (rs.next())idv=rs.getInt("id");
            sql="select idTipo from Tipos where nombretipo='"+tipo+"'";
            rs=st.executeQuery(sql);
            int idt=0;
            if (rs.next())idt=rs.getInt("idTipo");
            sql="insert into tipoventa values("+idv+","+idt+")";
            System.out.print(sql);
            st.executeUpdate(sql);
            sql="insert into ventacliente values("+idv+",'"+cliente.getCI()+"')";
            st.executeUpdate(sql);
            int i=0;
            while (i<lista.size()){
                sql="insert into detalleventa values("+idv+","+lista.get(i).getProducto().getIdProducto()+","+suc.getIdSucursal()+","+lista.get(i).getCantidad()+")";
                st.executeUpdate(sql);
                sql="update sucursalproducto set cantidad=cantidad-"+lista.get(i).getCantidad() +" where idsucursal="+suc.getIdSucursal()+" and idproducto="+lista.get(i).getProducto().getIdProducto() +"";
                st.executeUpdate(sql);
                i++;
            }
            c.Commit();
            c.Desconectar();
        } catch (SQLException ex) {
            c.RollBack();
            Logger.getLogger(VentaDB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
